#include "WrapperComponente.h"

namespace Toolkit
{

WrapperComponente::WrapperComponente()
{
    this->componente = NULL;
}

WrapperComponente::~WrapperComponente()
{
}

void WrapperComponente::serializar(stringstream& stream, const TipoSerializacion &tSerializacion) const
{
    if (componente != NULL)
    {
        componente->serializar(stream);
    }
}

void WrapperComponente::hidratar(stringstream& stream, const Dato &dato, const TipoSerializacion &tSerializacion)
{
    if (componente != NULL)
    {
        componente->hidratar(stream, dato);
    }

}

Componente* WrapperComponente::getComponente() const
{
    return componente;
}

void WrapperComponente::setComponente(Componente* componente)
{
    this->componente = componente;
}

unsigned long int WrapperComponente::getTamanoMetadata(const TipoSerializacion &tSerializacion)
{
    stringstream stream;
    this->serializar(stream, tSerializacion);

    return stream.str().size();
}

WrapperComponente *WrapperComponente::clonarSinComponente() const
{
	return new WrapperComponente();
}

}
